import java.util.Arrays;
import java.util.Scanner;

public class Test {
    public static String toString(int[] array){
        String ret="\""+"[";
        for (int i = 0; i < array.length; i++) {
                ret+=array[i];
                if (i!=array.length-1){
                    ret+=",";
                }
        }
        ret+="]"+"\"";
        return ret;
    }
    public static void main(String[] args) {
        /**
         * 题目名称：
         * 数组转字符串
         * 题目内容：
         * 实现一个方法 toString, 把一个整型数组转换成字符串. 例如数组 {1, 2, 3} , 返回的字符串为 "[1, 2, 3]", 注意 逗号 的位置和数量.
         */
        int[] array=new int[]{1,2,3};
      String str=  toString(array);
        System.out.println(str);



    }
    public static void Mycopyof(int[] array,int[] array1){

        for (int i = 0; i < array.length; i++) {
            array1[i]=array[i];
        }
    }
    public static void main8(String[] args) {
        /**
         * 数组的拷贝
         * 题目内容：
         * 实现一个方法 copyOf, 对一个整型数组进行拷贝, 得到一个新的数组.
         */
        int[] array=new int[]{1,2,3,4,5,6,7,8};
        int[] array1=new int[array.length];
        Mycopyof(array,array1);
        System.out.println(Arrays.toString(array1));

    }
    public static void main7(String[] args) {
        /**
         * 题目名称：
         * 二分查找
         * 题目内容：
         * 给定一个有序整型数组, 实现二分查找
         */
        int[] array=new int[]{1,2,3,4,5,6,7,8};
        int left=0;
        int right=array.length-1;
        int ret=(left+right)/2;
        int key=3;

        while (left<right){
            if(array[ret]==key){

                break;
            }else if (array[ret]>key){
                right=ret;
            }else {
                left=ret;
            }
            ret=(left+right)/2;
        }
        System.out.println(array[ret]);
    }
    public static boolean fun1(int[] array){
        boolean lea=false;
        for (int i = 0; i < array.length-1; i++) {
            for (int j = 0; j < array.length-1; j++) {
                if (array[j]>array[j+1]){//进入就代表无序
                    lea= true;
                    break;
                }
            }
            if(lea==true){
                break;
            }
        }
        return lea;
    }
    public static void main6(String[] args) {
        /**
         * 题目名称：
         * 数组是否有序
         * 题目内容：
         * 给定一个整型数组, 判定数组是否有序（递增）
         */
        int[] array=new int[]{1,2,4,3,5};
        boolean lean =fun1(array);
        if(lean==true){
            System.out.println("无序");
        }else {
            System.out.println("有序");
        }
    }
    public static void fun(int[] array){

        for (int i = 0; i < array.length-1; i++) {
            boolean lean=false;
            for (int j = 0; j < array.length-1-i; j++) {
                if (array[j]>array[j+1]){
                    int tmp=array[j+1];
                    array[j+1]=array[j];
                    array[j]=tmp;
                    lean =true;//意思为假如某行有序了就不会进来
                }
            }
            if (lean==false){//判断某一行提前有序后面就不需要数组进行排序了
                break;
            }
        }
    }
    public static void main5(String[] args) {
        /**
         * 冒泡排序
         * 题目内容：
         * 给定一个整型数组, 实现冒泡排序(升序排序)
         */
        int [] array=new int[]{9,8,7,6,5,4,3,2,1,0};
        fun(array);
        System.out.println(Arrays.toString(array));
    }
//    public static int[] fun(int target,int[] nums ){
//
//        for (int i = 0; i < nums.length; i++) {
//            for (int j = 0; j < nums.length; j++) {
//                if(nums[i]+nums[j]==target){
//                    return i;
//                }
//            }
//        }
//
//    }
    public static void main3(String[] args) {
        /**
         * 题目名称：
         * 两数之和
         * 题目内容：
         * 给定一个整数数组 nums 和一个整数目标值 target，请你在该数组中找出 和为目标值 target 的那 两个 整数，并返回它们的数组下标。
         * 你可以假设每种输入只会对应一个答案。但是，数组中同一个元素在答案里不能重复出现。
         *
         * 你可以按任意顺序返回答案。
         */
        Scanner scanner=new Scanner(System.in);
        int target=scanner.nextInt();
        int[] nums=new int[]{2,4,6,8};
        boolean lean=false;
        for (int i = 0; i < nums.length; i++) {
            for (int j = 0; j < nums.length; j++) {
                if(nums[i]+nums[j]==target){
                    System.out.println(i+" "+j);
                    lean=true;
                    break;
                }

            }
            if(lean==true){
                break;
            }
        }
//          fun(target,nums);






    }
    public static void main2(String[] args) {
        /**
         * 目名称：
         * 创建的数组，并且赋初始值
         * 题目内容：
         * 创建一个 int 类型的数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100
         */
        int[] array=new int[100];
        for (int i = 0; i < array.length; i++) {
            array[i]=(i+1);
        }
        System.out.println(Arrays.toString(array));
    }
    public static void transform(int[] array){
//        int tmp=0;
        for (int i = 0; i < array.length; i++) {
            array[i]=(array[i]*2);

        }
    }
    public static void main1(String[] args) {
        /**
         * 题目名称：
         * 改变原有数组元素的值
         * 题目内容：
         * 实现一个方法 transform, 以数组为参数, 循环将数组中的每个元素 乘以 2 , 并设置到对应的数组元素上. 例如 原数组为 {1, 2, 3}, 修改之后为 {2, 4, 6}
         */
        int[] array=new int[]{1,2,3};
        transform(array);
        System.out.println(Arrays.toString(array));

    }
}
